Information drives business. Delays in accessing information can cost a business money and can result in consumption of data center resources that could threaten an organization's productivity. For businesses that increasingly depend on data and information for their day-to-day operations, such delays in data access can hurt a business' reputation and bottom line. Businesses are becoming increasingly aware of these costs and are taking measures to improve their ability to access mission critical data.
Many complex business applications, such as database management systems, rely upon large stores of data resident on file storage devices. Often, such large stores of data can be found in a small number of very large files. An example of such a file is illustrated in FIG. 1. As a file expands, it is often the case that certain portions of the file are accessed more frequently than others. (For example, the data found in data blocks 125 and 128 may be accessed more than the data found in the other blocks of File Data 120.) However, the size of the file can affect business applications' time of access to those heavily accessed sections of the file. In order to improve performance, it may be desirable to split the large file into smaller portions corresponding with frequently-accessed and infrequently-accessed data. Access to frequently accessed portions of the data can be further improved by causing the corresponding split files to reside on data media that is designed for fast accessibility (e.g., disk drives with fast seek times).
A conventional method of file splitting is illustrated in FIGS. 2A-2C. FIG. 2A shows the structure of a file 100. File 100 can be thought of as consisting of two parts: a file data structure (110) and data resident on the file system (120). A common file data structure is called an inode. Typically, an inode contains metadata describing file characteristics and pointers pointing to the beginning of blocks of data stored on the file system. Metadata can include information such as a file's creation date, a modification date, owners of the file, and access permissions for the file.
FIG. 2B illustrates an intermediate step of conventional methods of file splitting. A set of new files is created to contain the split data. Creation of new files involves creating new File Data Structures (210, 220) for the split files, as well as creating a duplicate (232-238) of all of the original file data (122-128).
Once the new file data structures and data have been duplicated and checked, then the original inode and original data can be deleted as shown in FIG. 2C. But the intermediate step of duplicating the original data can require a large amount of file memory space especially in the case where the original file is large. In order to duplicate that data, file memory space must be available on the accessible storage devices. Maintaining such additional storage capacity, or the effort entailed in removing other files to create such capacity, can be wasteful of a business' resources and money. Further, duplicating data requires significant time during which the source data may not be accessible to users or applications. Such time losses will be emphasized for very large files.
What is therefore needed is a file splitting solution that avoids the necessity of creating a temporary duplicate of the original data. Such a solution would conserve not only the file memory space, but also any time involved in duplicating data.